/**
 *
 * @description: 字符串
 * @author: junyong.hong
 * @createTime: 2018/3/27
 * @version: 1.0.0.0
 * @history:
 *    1、
 *    2、
 *
 */
{
    // 输出：a a
    console.log('a',`\u0061`);
    // 输出：s ₻7
    console.log('s',`\u20BB7`);
    // 输出：s 𠮷
    console.log('s',`\u{20BB7}`);


}

{
    let s = '𠮷';
    // length= 2
    console.log('length=', s.length)
    // chart0= �
    console.log('chart0=', s.charAt(0))
    // chart1= �
    console.log('chart1=', s.charAt(1))
    // charCodeAt0= 55362
    console.log('charCodeAt0=', s.charCodeAt(0))
    // charCodeAt1= 57271
    console.log('charCodeAt1=', s.charCodeAt(1))

    // es6的处理
    let s1 = '𠮷a';
    // length 3
    console.log('length',s1.length);
    // code0 134071
    console.log('code0',s1.codePointAt(0));
    // code0 20bb7
    console.log('code0',s1.codePointAt(0).toString(16));
    // code1 57271
    console.log('code1',s1.codePointAt(1));
    // code2 97
    console.log('code2',s1.codePointAt(2));
}

{
    // 反转
    // ஷ
    console.log(String.fromCharCode("0x20bb7"));
    // 𠮷
    console.log(String.fromCodePoint("0x20bb7"));
}

{
    let str = '\u{20bb7}abc';
    for(let i=0;i<str.length;i++){
        console.log('es5',str[i]);
    }
    for(let code of str){
        console.log('es6',code);
    }
}



{
    let str = 'string';
    // 查找是否包含了r
    console.log('查找是否包含了r：', str.includes('r'));        // true
    // 判断是否以str为起始
    console.log('判断是否以str为起始：',str.startsWith('str'));  // true
    // 判断是否以ng为结尾
    console.log('判断是否以ng为结尾：',str.endsWith('ng'));      // true
}

{
    let str = 'abc';
    // 字符串复制
    console.log('字符串复制：' + str.repeat(2));  // abcabc
}


{
    let name = 'list';
    let info = 'hello world';
    let m = `i am ${name},${info}`;
    console.log('字符串拼接：' + m)           // i am list,hello world
}

{
    // 通常运用在日期

    // 向前补：长度是4位，不够补0
    console.log('1'.padStart(4,'0'));       // 0001

    // 向后补
    console.log('1'.padEnd(2,'0'));         // 10
}

// 标签模版（作用：1、过滤字符串 2、处理多语言转换）
{
    let user = {
        name:'list',
        info:'hello world'
    };
    // 标签模版
    console.log(abc`i am ${user.name},${user.info}`);

    function abc(s,v1,v2) {
        console.log(s,v1,v2);
        return s+v1+v2;
    }
}

{
    // String.raw对\n进行转义
    console.log(String.raw`Hi\n${1+2}`);
    console.log(`Hi\n${1+2}`);
}


